//
//  TXVodPreloadManager.h
//  TXLiteAVSDK
//
//  Created by ianyanzhang on 2022/4/7.
//  Copyright © 2022 Tencent. All rights reserved.
//

#import <Foundation/Foundation.h>

NS_ASSUME_NONNULL_BEGIN

@protocol TXVodPreloadManagerDelegate <NSObject>

@optional

- (void)onComplete:(int)taskID url:(NSString *)url;

- (void)onError:(int)taskID url:(NSString *)url error:(NSError *)error;

@end

@interface TXVodPreloadManager : NSObject

/**
 @brief  播放器预下载管理类
 @discussion  播放器预下载管理类
 @return  返回播放器管理类对象
*/
+ (instancetype)sharedManager;

/**
 @brief  启动预下载
 @discussion 【重要】启动预下载前，请先设置好播放引擎的缓存目录 [TXPlayerGlobalSetting  setCacheFolderPath: ]和缓存大小[ TXPlayerGlobalSetting setMaxCacheSizeMB:]，这个设置是全局配置需和播放器保持一致，
否则会造成播放缓存失效。
 @param requestURL  预下载的URL
 @param preloadSizeMB    预下载的大小（单位：MB）
 @param preferredResolution  期望分辨率，long类型，取值如：从TXVodPlayConfig.VIDEO_RESOLUTION_720X1280，不支持多分辨率或不需指定时，传-1
 @param delegate  回调
 @return 任务ID，可用这个任务ID停止预下载 [ TXVodPreloadManager  stopPreload ]
*/
- (int)startPreload:(NSString *)requestURL
        preloadSize:(int)preloadSizeMB
preferredResolution:(long)preferredResolution
           delegate:(id<TXVodPreloadManagerDelegate>)delegate;

/**
 @brief  停止预下载
 @discussion  根据 ‘taskID’ 停止预下载
 @param taskID  TaskID
*/
- (void)stopPreload:(int)taskID;

@end

NS_ASSUME_NONNULL_END
